Dec 01 21:36:40.612 INFO testing christopherjmedlin/yalc8emu against master#8940af3cea4a9a9deabcaf843b2f8cad9a83fc61 for beta-1.31-5
Dec 01 21:36:40.612 INFO running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/beta-1.31-5/worker-3/master#8940af3cea4a9a9deabcaf843b2f8cad9a83fc61:/target:rw,Z" "-v" "/mnt/big/crater/work/local/test-source/worker-3/beta-1.31-5/master#8940af3cea4a9a9deabcaf843b2f8cad9a83fc61:/source:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/source" "-e" "USER_ID=1000" "-e" "CMD=cargo +8940af3cea4a9a9deabcaf843b2f8cad9a83fc61-alt build --frozen" "-e" "CARGO_TARGET_DIR=/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/cargo-home" "-e" "RUSTUP_HOME=/rustup-home" "-m" "1536M" "--network" "none" "crater"`
Dec 01 21:36:40.964 INFO [stdout] 963d3370feff22d99518140a10a2fe211a1e3c7e0b8287aaa8166a57be1287b4
Dec 01 21:36:40.966 INFO running `"docker" "start" "-a" "963d3370feff22d99518140a10a2fe211a1e3c7e0b8287aaa8166a57be1287b4"`
Dec 01 21:36:41.959 INFO [stderr] usermod: no changes
Dec 01 21:36:42.087 INFO [stderr]    Compiling chip8 v0.1.0 (/source)
Dec 01 21:36:43.135 INFO [stderr] warning: unused import: `Duration`
Dec 01 21:36:43.135 INFO [stderr]  --> src/cpu/timers.rs:1:26
Dec 01 21:36:43.135 INFO [stderr]   |
Dec 01 21:36:43.135 INFO [stderr] 1 | use std::time::{Instant, Duration};
Dec 01 21:36:43.135 INFO [stderr]   |                          ^^^^^^^^
Dec 01 21:36:43.135 INFO [stderr]   |
Dec 01 21:36:43.135 INFO [stderr]   = note: #[warn(unused_imports)] on by default
Dec 01 21:36:43.135 INFO [stderr] 
Dec 01 21:36:43.135 INFO [stderr] warning: unused import: `std::num::Wrapping`
Dec 01 21:36:43.135 INFO [stderr]  --> src/cpu/mod.rs:6:5
Dec 01 21:36:43.135 INFO [stderr]   |
Dec 01 21:36:43.135 INFO [stderr] 6 | use std::num::Wrapping;
Dec 01 21:36:43.135 INFO [stderr]   |     ^^^^^^^^^^^^^^^^^^
Dec 01 21:36:43.135 INFO [stderr] 
Dec 01 21:36:43.135 INFO [stderr] warning: unnecessary parentheses around `if` condition
Dec 01 21:36:43.135 INFO [stderr]    --> src/cpu/mod.rs:378:22
Dec 01 21:36:43.135 INFO [stderr]     |
Dec 01 21:36:43.135 INFO [stderr] 378 |         let end = if (x > 0xf) {0xf} else {x};
Dec 01 21:36:43.135 INFO [stderr]     |                      ^^^^^^^^^ help: remove these parentheses
Dec 01 21:36:43.135 INFO [stderr]     |
Dec 01 21:36:43.135 INFO [stderr]     = note: #[warn(unused_parens)] on by default
Dec 01 21:36:43.135 INFO [stderr] 
Dec 01 21:36:43.135 INFO [stderr] warning: unnecessary parentheses around `if` condition
Dec 01 21:36:43.135 INFO [stderr]    --> src/cpu/mod.rs:389:22
Dec 01 21:36:43.135 INFO [stderr]     |
Dec 01 21:36:43.135 INFO [stderr] 389 |         let end = if (x > 0xf) {0xf} else {x};
Dec 01 21:36:43.135 INFO [stderr]     |                      ^^^^^^^^^ help: remove these parentheses
Dec 01 21:36:43.135 INFO [stderr] 
Dec 01 21:36:43.346 INFO [stderr] warning: unused variable: `why`
Dec 01 21:36:43.346 INFO [stderr]  --> src/rom.rs:9:13
Dec 01 21:36:43.346 INFO [stderr]   |
Dec 01 21:36:43.346 INFO [stderr] 9 |         Err(why) => panic!("Couldn't open ROM"),
Dec 01 21:36:43.346 INFO [stderr]   |             ^^^ help: consider using `_why` instead
Dec 01 21:36:43.346 INFO [stderr]   |
Dec 01 21:36:43.346 INFO [stderr]   = note: #[warn(unused_variables)] on by default
Dec 01 21:36:43.346 INFO [stderr] 
Dec 01 21:36:43.346 INFO [stderr] warning: unused variable: `b`
Dec 01 21:36:43.346 INFO [stderr]   --> src/cpu/mod.rs:50:18
Dec 01 21:36:43.346 INFO [stderr]    |
Dec 01 21:36:43.346 INFO [stderr] 50 |         for (i, &b) in rom.iter().enumerate() {
Dec 01 21:36:43.346 INFO [stderr]    |                  ^ help: consider using `_b` instead
Dec 01 21:36:43.346 INFO [stderr] 
Dec 01 21:36:43.350 INFO [stderr] warning: unused variable: `result`
Dec 01 21:36:43.350 INFO [stderr]   --> src/display.rs:57:25
Dec 01 21:36:43.350 INFO [stderr]    |
Dec 01 21:36:43.350 INFO [stderr] 57 |                     let result = canvas.fill_rect(Rect::new(x_coord, y_coord, 10, 10));
Dec 01 21:36:43.350 INFO [stderr]    |                         ^^^^^^ help: consider using `_result` instead
Dec 01 21:36:43.350 INFO [stderr] 
Dec 01 21:36:43.350 INFO [stderr] warning: unused variable: `event_keycode`
Dec 01 21:36:43.350 INFO [stderr]   --> src/keypad.rs:24:13
Dec 01 21:36:43.350 INFO [stderr]    |
Dec 01 21:36:43.350 INFO [stderr] 24 |         let event_keycode: Keycode;
Dec 01 21:36:43.350 INFO [stderr]    |             ^^^^^^^^^^^^^ help: consider using `_event_keycode` instead
Dec 01 21:36:43.350 INFO [stderr] 
Dec 01 21:36:43.375 INFO [stderr] warning: variable does not need to be mutable
Dec 01 21:36:43.375 INFO [stderr]   --> src/cpu/timers.rs:16:13
Dec 01 21:36:43.375 INFO [stderr]    |
Dec 01 21:36:43.375 INFO [stderr] 16 |         let mut timers = TimerSubsystem {
Dec 01 21:36:43.375 INFO [stderr]    |             ----^^^^^^
Dec 01 21:36:43.375 INFO [stderr]    |             |
Dec 01 21:36:43.375 INFO [stderr]    |             help: remove this `mut`
Dec 01 21:36:43.375 INFO [stderr]    |
Dec 01 21:36:43.375 INFO [stderr]    = note: #[warn(unused_mut)] on by default
Dec 01 21:36:43.375 INFO [stderr] 
Dec 01 21:36:43.403 INFO [stderr] warning: method is never used: `get_pixel`
Dec 01 21:36:43.403 INFO [stderr]   --> src/display.rs:68:5
Dec 01 21:36:43.403 INFO [stderr]    |
Dec 01 21:36:43.403 INFO [stderr] 68 |     pub fn get_pixel(self, x: usize, y: usize) -> (bool) {
Dec 01 21:36:43.403 INFO [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 01 21:36:43.403 INFO [stderr]    |
Dec 01 21:36:43.403 INFO [stderr]    = note: #[warn(dead_code)] on by default
Dec 01 21:36:43.403 INFO [stderr] 
Dec 01 21:36:43.403 INFO [stderr] warning: method `op_00E0` should have a snake case name such as `op_00_e0`
Dec 01 21:36:43.403 INFO [stderr]    --> src/cpu/mod.rs:127:5
Dec 01 21:36:43.403 INFO [stderr]     |
Dec 01 21:36:43.403 INFO [stderr] 127 | /     fn op_00E0(&mut self) -> (usize) {
Dec 01 21:36:43.403 INFO [stderr] 128 | |         self.display.clear();
Dec 01 21:36:43.403 INFO [stderr] 129 | |         2
Dec 01 21:36:43.403 INFO [stderr] 130 | |     }
Dec 01 21:36:43.403 INFO [stderr]     | |_____^
Dec 01 21:36:43.403 INFO [stderr]     |
Dec 01 21:36:43.403 INFO [stderr]     = note: #[warn(non_snake_case)] on by default
Dec 01 21:36:43.403 INFO [stderr] 
Dec 01 21:36:43.403 INFO [stderr] warning: method `op_00EE` should have a snake case name such as `op_00_ee`
Dec 01 21:36:43.403 INFO [stderr]    --> src/cpu/mod.rs:133:5
Dec 01 21:36:43.403 INFO [stderr]     |
Dec 01 21:36:43.403 INFO [stderr] 133 | /     fn op_00EE(&mut self) -> (usize) {
Dec 01 21:36:43.403 INFO [stderr] 134 | |         self.pc = self.stack[self.sp];
Dec 01 21:36:43.403 INFO [stderr] 135 | |         self.sp -= 1;
Dec 01 21:36:43.403 INFO [stderr] 136 | |         0
Dec 01 21:36:43.403 INFO [stderr] 137 | |     }
Dec 01 21:36:43.403 INFO [stderr]     | |_____^
Dec 01 21:36:43.403 INFO [stderr] 
Dec 01 21:36:43.403 INFO [stderr] warning: method `op_8xyE` should have a snake case name such as `op_8xy_e`
Dec 01 21:36:43.403 INFO [stderr]    --> src/cpu/mod.rs:264:5
Dec 01 21:36:43.403 INFO [stderr]     |
Dec 01 21:36:43.403 INFO [stderr] 264 | /     fn op_8xyE(&mut self, x: usize) -> (usize) {
Dec 01 21:36:43.403 INFO [stderr] 265 | |         self.v[0xF] = if self.v[x] & 1 == 1 {1} else {0};
Dec 01 21:36:43.403 INFO [stderr] 266 | |         self.v[x] <<= 1;
Dec 01 21:36:43.403 INFO [stderr] 267 | |         2
Dec 01 21:36:43.403 INFO [stderr] 268 | |     }
Dec 01 21:36:43.403 INFO [stderr]     | |_____^
Dec 01 21:36:43.403 INFO [stderr] 
Dec 01 21:36:43.403 INFO [stderr] warning: method `op_Annn` should have a snake case name such as `op_annn`
Dec 01 21:36:43.403 INFO [stderr]    --> src/cpu/mod.rs:279:5
Dec 01 21:36:43.403 INFO [stderr]     |
Dec 01 21:36:43.403 INFO [stderr] 279 | /     fn op_Annn(&mut self, nnn: usize) -> (usize) {
Dec 01 21:36:43.403 INFO [stderr] 280 | |         self.i = nnn;
Dec 01 21:36:43.403 INFO [stderr] 281 | |         2
Dec 01 21:36:43.403 INFO [stderr] 282 | |     }
Dec 01 21:36:43.403 INFO [stderr]     | |_____^
Dec 01 21:36:43.403 INFO [stderr] 
Dec 01 21:36:43.403 INFO [stderr] warning: method `op_Bnnn` should have a snake case name such as `op_bnnn`
Dec 01 21:36:43.403 INFO [stderr]    --> src/cpu/mod.rs:285:5
Dec 01 21:36:43.403 INFO [stderr]     |
Dec 01 21:36:43.403 INFO [stderr] 285 | /     fn op_Bnnn(&mut self, nnn: usize) -> (usize) {
Dec 01 21:36:43.403 INFO [stderr] 286 | |         self.pc = nnn + (self.v[0] as usize);
Dec 01 21:36:43.403 INFO [stderr] 287 | |         0
Dec 01 21:36:43.403 INFO [stderr] 288 | |     }
Dec 01 21:36:43.403 INFO [stderr]     | |_____^
Dec 01 21:36:43.404 INFO [stderr] 
Dec 01 21:36:43.404 INFO [stderr] warning: method `op_Cxkk` should have a snake case name such as `op_cxkk`
Dec 01 21:36:43.404 INFO [stderr]    --> src/cpu/mod.rs:291:5
Dec 01 21:36:43.404 INFO [stderr]     |
Dec 01 21:36:43.404 INFO [stderr] 291 | /     fn op_Cxkk(&mut self, x: usize, kk: u8) -> (usize) {
Dec 01 21:36:43.404 INFO [stderr] 292 | |         let rn: u8 = rand::random();
Dec 01 21:36:43.404 INFO [stderr] 293 | |         self.v[x] = rn & kk;
Dec 01 21:36:43.404 INFO [stderr] 294 | |         2
Dec 01 21:36:43.404 INFO [stderr] 295 | |     }
Dec 01 21:36:43.404 INFO [stderr]     | |_____^
Dec 01 21:36:43.404 INFO [stderr] 
Dec 01 21:36:43.404 INFO [stderr] warning: method `op_Dxyn` should have a snake case name such as `op_dxyn`
Dec 01 21:36:43.404 INFO [stderr]    --> src/cpu/mod.rs:298:5
Dec 01 21:36:43.404 INFO [stderr]     |
Dec 01 21:36:43.404 INFO [stderr] 298 | /     fn op_Dxyn(&mut self, x: usize, y: usize, n: usize) -> (usize) {
Dec 01 21:36:43.404 INFO [stderr] 299 | |         let mut sprite = [0; 15];
Dec 01 21:36:43.404 INFO [stderr] 300 | |         
Dec 01 21:36:43.404 INFO [stderr] 301 | |         for j in 0..n {
Dec 01 21:36:43.404 INFO [stderr] ...   |
Dec 01 21:36:43.404 INFO [stderr] 308 | |         2
Dec 01 21:36:43.404 INFO [stderr] 309 | |     }
Dec 01 21:36:43.404 INFO [stderr]     | |_____^
Dec 01 21:36:43.404 INFO [stderr] 
Dec 01 21:36:43.404 INFO [stderr] warning: method `op_Ex9E` should have a snake case name such as `op_ex9_e`
Dec 01 21:36:43.404 INFO [stderr]    --> src/cpu/mod.rs:312:5
Dec 01 21:36:43.404 INFO [stderr]     |
Dec 01 21:36:43.404 INFO [stderr] 312 | /     fn op_Ex9E (&mut self, x: usize) -> (usize) {
Dec 01 21:36:43.404 INFO [stderr] 313 | |         if self.keypad.get_key(self.v[x] as usize) { return 4 }
Dec 01 21:36:43.404 INFO [stderr] 314 | |         2
Dec 01 21:36:43.404 INFO [stderr] 315 | |     }
Dec 01 21:36:43.404 INFO [stderr]     | |_____^
Dec 01 21:36:43.404 INFO [stderr] 
Dec 01 21:36:43.404 INFO [stderr] warning: method `op_ExA1` should have a snake case name such as `op_ex_a1`
Dec 01 21:36:43.404 INFO [stderr]    --> src/cpu/mod.rs:318:5
Dec 01 21:36:43.404 INFO [stderr]     |
Dec 01 21:36:43.404 INFO [stderr] 318 | /     fn op_ExA1(&mut self, x: usize) -> (usize) {
Dec 01 21:36:43.404 INFO [stderr] 319 | |         if self.keypad.get_key(self.v[x] as usize) { return 2 }
Dec 01 21:36:43.404 INFO [stderr] 320 | |         4
Dec 01 21:36:43.404 INFO [stderr] 321 | |     }
Dec 01 21:36:43.404 INFO [stderr]     | |_____^
Dec 01 21:36:43.404 INFO [stderr] 
Dec 01 21:36:43.404 INFO [stderr] warning: method `op_Fx07` should have a snake case name such as `op_fx07`
Dec 01 21:36:43.404 INFO [stderr]    --> src/cpu/mod.rs:324:5
Dec 01 21:36:43.404 INFO [stderr]     |
Dec 01 21:36:43.404 INFO [stderr] 324 | /     fn op_Fx07(&mut self, x: usize) -> (usize) {
Dec 01 21:36:43.404 INFO [stderr] 325 | |         self.v[x] = self.timer_subsystem.delay;
Dec 01 21:36:43.404 INFO [stderr] 326 | |         2
Dec 01 21:36:43.404 INFO [stderr] 327 | |     }
Dec 01 21:36:43.404 INFO [stderr]     | |_____^
Dec 01 21:36:43.404 INFO [stderr] 
Dec 01 21:36:43.404 INFO [stderr] warning: method `op_Fx0A` should have a snake case name such as `op_fx0_a`
Dec 01 21:36:43.404 INFO [stderr]    --> src/cpu/mod.rs:330:5
Dec 01 21:36:43.404 INFO [stderr]     |
Dec 01 21:36:43.404 INFO [stderr] 330 | /     fn op_Fx0A(&mut self, x: usize) -> (usize) {
Dec 01 21:36:43.404 INFO [stderr] 331 | |         let keypress = self.keypad.wait_for_keypress();
Dec 01 21:36:43.404 INFO [stderr] 332 | |         if keypress == 0x10 {
Dec 01 21:36:43.404 INFO [stderr] 333 | |             // keep pc where it is and keep executing this same instruction
Dec 01 21:36:43.404 INFO [stderr] ...   |
Dec 01 21:36:43.404 INFO [stderr] 340 | |         2
Dec 01 21:36:43.404 INFO [stderr] 341 | |     }
Dec 01 21:36:43.404 INFO [stderr]     | |_____^
Dec 01 21:36:43.404 INFO [stderr] 
Dec 01 21:36:43.404 INFO [stderr] warning: method `op_Fx15` should have a snake case name such as `op_fx15`
Dec 01 21:36:43.404 INFO [stderr]    --> src/cpu/mod.rs:344:5
Dec 01 21:36:43.404 INFO [stderr]     |
Dec 01 21:36:43.404 INFO [stderr] 344 | /     fn op_Fx15(&mut self, x: usize) -> (usize) {
Dec 01 21:36:43.404 INFO [stderr] 345 | |         self.timer_subsystem.delay = self.v[x];
Dec 01 21:36:43.404 INFO [stderr] 346 | |         2
Dec 01 21:36:43.404 INFO [stderr] 347 | |     }
Dec 01 21:36:43.404 INFO [stderr]     | |_____^
Dec 01 21:36:43.404 INFO [stderr] 
Dec 01 21:36:43.404 INFO [stderr] warning: method `op_Fx18` should have a snake case name such as `op_fx18`
Dec 01 21:36:43.404 INFO [stderr]    --> src/cpu/mod.rs:350:5
Dec 01 21:36:43.404 INFO [stderr]     |
Dec 01 21:36:43.404 INFO [stderr] 350 | /     fn op_Fx18(&mut self, x: usize) -> (usize) {
Dec 01 21:36:43.404 INFO [stderr] 351 | |         self.timer_subsystem.sound = self.v[x];
Dec 01 21:36:43.404 INFO [stderr] 352 | |         2
Dec 01 21:36:43.404 INFO [stderr] 353 | |     }
Dec 01 21:36:43.404 INFO [stderr]     | |_____^
Dec 01 21:36:43.404 INFO [stderr] 
Dec 01 21:36:43.404 INFO [stderr] warning: method `op_Fx1E` should have a snake case name such as `op_fx1_e`
Dec 01 21:36:43.404 INFO [stderr]    --> src/cpu/mod.rs:356:5
Dec 01 21:36:43.404 INFO [stderr]     |
Dec 01 21:36:43.404 INFO [stderr] 356 | /     fn op_Fx1E(&mut self, x: usize) -> (usize) {
Dec 01 21:36:43.404 INFO [stderr] 357 | |         self.i = self.v[x] as usize + self.i;
Dec 01 21:36:43.404 INFO [stderr] 358 | |         2
Dec 01 21:36:43.404 INFO [stderr] 359 | |     }
Dec 01 21:36:43.404 INFO [stderr]     | |_____^
Dec 01 21:36:43.404 INFO [stderr] 
Dec 01 21:36:43.404 INFO [stderr] warning: method `op_Fx29` should have a snake case name such as `op_fx29`
Dec 01 21:36:43.404 INFO [stderr]    --> src/cpu/mod.rs:362:5
Dec 01 21:36:43.404 INFO [stderr]     |
Dec 01 21:36:43.404 INFO [stderr] 362 | /     fn op_Fx29(&mut self, x: usize) -> (usize) {
Dec 01 21:36:43.404 INFO [stderr] 363 | |         self.i = (self.v[x] * 5) as usize;
Dec 01 21:36:43.404 INFO [stderr] 364 | |         2
Dec 01 21:36:43.404 INFO [stderr] 365 | |     }
Dec 01 21:36:43.404 INFO [stderr]     | |_____^
Dec 01 21:36:43.405 INFO [stderr] 
Dec 01 21:36:43.405 INFO [stderr] warning: method `op_Fx33` should have a snake case name such as `op_fx33`
Dec 01 21:36:43.405 INFO [stderr]    --> src/cpu/mod.rs:368:5
Dec 01 21:36:43.405 INFO [stderr]     |
Dec 01 21:36:43.405 INFO [stderr] 368 | /     fn op_Fx33(&mut self, x: usize) -> (usize) {
Dec 01 21:36:43.405 INFO [stderr] 369 | |         self.ram[self.i] = self.v[x] / 100;
Dec 01 21:36:43.405 INFO [stderr] 370 | |         self.ram[self.i + 1] = (self.v[x] % 100) / 10;
Dec 01 21:36:43.405 INFO [stderr] 371 | |         self.ram[self.i + 2] = self.v[x] % 10;
Dec 01 21:36:43.405 INFO [stderr] 372 | |         2
Dec 01 21:36:43.405 INFO [stderr] 373 | |     }
Dec 01 21:36:43.405 INFO [stderr]     | |_____^
Dec 01 21:36:43.405 INFO [stderr] 
Dec 01 21:36:43.405 INFO [stderr] warning: method `op_Fx55` should have a snake case name such as `op_fx55`
Dec 01 21:36:43.405 INFO [stderr]    --> src/cpu/mod.rs:376:5
Dec 01 21:36:43.405 INFO [stderr]     |
Dec 01 21:36:43.405 INFO [stderr] 376 | /     fn op_Fx55(&mut self, x: usize) -> (usize) {
Dec 01 21:36:43.405 INFO [stderr] 377 | |         // prevent out of bounds
Dec 01 21:36:43.405 INFO [stderr] 378 | |         let end = if (x > 0xf) {0xf} else {x};
Dec 01 21:36:43.405 INFO [stderr] 379 | |
Dec 01 21:36:43.405 INFO [stderr] ...   |
Dec 01 21:36:43.405 INFO [stderr] 383 | |         2
Dec 01 21:36:43.405 INFO [stderr] 384 | |     }
Dec 01 21:36:43.405 INFO [stderr]     | |_____^
Dec 01 21:36:43.405 INFO [stderr] 
Dec 01 21:36:43.405 INFO [stderr] warning: method `op_Fx65` should have a snake case name such as `op_fx65`
Dec 01 21:36:43.405 INFO [stderr]    --> src/cpu/mod.rs:387:5
Dec 01 21:36:43.405 INFO [stderr]     |
Dec 01 21:36:43.405 INFO [stderr] 387 | /     fn op_Fx65(&mut self, x: usize) -> (usize) {
Dec 01 21:36:43.405 INFO [stderr] 388 | |         // prevent out of bounds
Dec 01 21:36:43.405 INFO [stderr] 389 | |         let end = if (x > 0xf) {0xf} else {x};
Dec 01 21:36:43.405 INFO [stderr] 390 | |
Dec 01 21:36:43.405 INFO [stderr] ...   |
Dec 01 21:36:43.405 INFO [stderr] 394 | |         2
Dec 01 21:36:43.405 INFO [stderr] 395 | |     }
Dec 01 21:36:43.405 INFO [stderr]     | |_____^
Dec 01 21:36:43.405 INFO [stderr] 
Dec 01 21:36:43.405 INFO [stderr] warning: unused `std::result::Result` that must be used
Dec 01 21:36:43.405 INFO [stderr]   --> src/rom.rs:13:5
Dec 01 21:36:43.405 INFO [stderr]    |
Dec 01 21:36:43.405 INFO [stderr] 13 |     file.read(buf);
Dec 01 21:36:43.405 INFO [stderr]    |     ^^^^^^^^^^^^^^^
Dec 01 21:36:43.405 INFO [stderr]    |
Dec 01 21:36:43.405 INFO [stderr]    = note: #[warn(unused_must_use)] on by default
Dec 01 21:36:43.405 INFO [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
Dec 01 21:36:43.405 INFO [stderr] 
Dec 01 21:36:44.162 INFO [stderr] error: linking with `cc` failed: exit code: 1
Dec 01 21:36:44.162 INFO [stderr]   |
Dec 01 21:36:44.162 INFO [stderr]   = note: "cc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-L" "/rustup-home/toolchains/8940af3cea4a9a9deabcaf843b2f8cad9a83fc61-alt/lib/rustlib/x86_64-unknown-linux-gnu/lib" "/target/debug/deps/chip8-08442518617b8d8f.chip8.7ahqsmjo-cgu.0.rcgu.o" "/target/debug/deps/chip8-08442518617b8d8f.chip8.7ahqsmjo-cgu.1.rcgu.o" "/target/debug/deps/chip8-08442518617b8d8f.chip8.7ahqsmjo-cgu.10.rcgu.o" "/target/debug/deps/chip8-08442518617b8d8f.chip8.7ahqsmjo-cgu.11.rcgu.o" "/target/debug/deps/chip8-08442518617b8d8f.chip8.7ahqsmjo-cgu.12.rcgu.o" "/target/debug/deps/chip8-08442518617b8d8f.chip8.7ahqsmjo-cgu.13.rcgu.o" "/target/debug/deps/chip8-08442518617b8d8f.chip8.7ahqsmjo-cgu.14.rcgu.o" "/target/debug/deps/chip8-08442518617b8d8f.chip8.7ahqsmjo-cgu.15.rcgu.o" "/target/debug/deps/chip8-08442518617b8d8f.chip8.7ahqsmjo-cgu.2.rcgu.o" "/target/debug/deps/chip8-08442518617b8d8f.chip8.7ahqsmjo-cgu.3.rcgu.o" "/target/debug/deps/chip8-08442518617b8d8f.chip8.7ahqsmjo-cgu.4.rcgu.o" "/target/debug/deps/chip8-08442518617b8d8f.chip8.7ahqsmjo-cgu.5.rcgu.o" "/target/debug/deps/chip8-08442518617b8d8f.chip8.7ahqsmjo-cgu.6.rcgu.o" "/target/debug/deps/chip8-08442518617b8d8f.chip8.7ahqsmjo-cgu.7.rcgu.o" "/target/debug/deps/chip8-08442518617b8d8f.chip8.7ahqsmjo-cgu.8.rcgu.o" "/target/debug/deps/chip8-08442518617b8d8f.chip8.7ahqsmjo-cgu.9.rcgu.o" "-o" "/target/debug/deps/chip8-08442518617b8d8f" "/target/debug/deps/chip8-08442518617b8d8f.56ck9kj071qky50t.rcgu.o" "-Wl,--gc-sections" "-pie" "-Wl,-zrelro" "-Wl,-znow" "-nodefaultlibs" "-L" "/target/debug/deps" "-L" "/rustup-home/toolchains/8940af3cea4a9a9deabcaf843b2f8cad9a83fc61-alt/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/target/debug/deps/libsdl2-d9df6bc684e24747.rlib" "/target/debug/deps/librand-2558b629d9d502be.rlib" "/target/debug/deps/librand-ab3741cf0723d17e.rlib" "/target/debug/deps/libsdl2_sys-f24b9f305a9530c0.rlib" "/target/debug/deps/libbitflags-9fd1b2de9517a40d.rlib" "/target/debug/deps/liblazy_static-f0e3d8526a457932.rlib" "/target/debug/deps/libnum-037412280ed4a686.rlib" "/target/debug/deps/libnum_iter-50b36454a0438c20.rlib" "/target/debug/deps/libnum_integer-9713fd1a7510093f.rlib" "/target/debug/deps/libnum_traits-5a2fc5938c560302.rlib" "/target/debug/deps/librand-a38d0559f253fe9d.rlib" "/target/debug/deps/liblibc-0ac0d8fbb168d05a.rlib" "/target/debug/deps/librand_core-f0fde17dfa8bcfe7.rlib" "/target/debug/deps/librand_core-732674e20e851a04.rlib" "-Wl,--start-group" "/rustup-home/toolchains/8940af3cea4a9a9deabcaf843b2f8cad9a83fc61-alt/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-223739ea87b9a0b5.rlib" "/rustup-home/toolchains/8940af3cea4a9a9deabcaf843b2f8cad9a83fc61-alt/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-6ae4dfa984b116fe.rlib" "/rustup-home/toolchains/8940af3cea4a9a9deabcaf843b2f8cad9a83fc61-alt/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc_jemalloc-d0de55d071ae212c.rlib" "/rustup-home/toolchains/8940af3cea4a9a9deabcaf843b2f8cad9a83fc61-alt/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-56e6e4959fbf1e49.rlib" "/rustup-home/toolchains/8940af3cea4a9a9deabcaf843b2f8cad9a83fc61-alt/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc_system-74e77b0ac85c5e20.rlib" "/rustup-home/toolchains/8940af3cea4a9a9deabcaf843b2f8cad9a83fc61-alt/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-2e7d77edf47b6d69.rlib" "/rustup-home/toolchains/8940af3cea4a9a9deabcaf843b2f8cad9a83fc61-alt/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-c763cb552c7cefdf.rlib" "/rustup-home/toolchains/8940af3cea4a9a9deabcaf843b2f8cad9a83fc61-alt/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-5bafd13887121bda.rlib" "-Wl,--end-group" "/rustup-home/toolchains/8940af3cea4a9a9deabcaf843b2f8cad9a83fc61-alt/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-97868d8b5036fe99.rlib" "-Wl,-Bdynamic" "-lSDL2" "-lutil" "-lutil" "-ldl" "-lrt" "-lpthread" "-lpthread" "-lgcc_s" "-lc" "-lm" "-lrt" "-lpthread" "-lutil" "-lutil"
Dec 01 21:36:44.162 INFO [stderr]   = note: /usr/bin/ld: cannot find -lSDL2
Dec 01 21:36:44.162 INFO [stderr]           collect2: error: ld returned 1 exit status
Dec 01 21:36:44.162 INFO [stderr]           
Dec 01 21:36:44.162 INFO [stderr] 
Dec 01 21:36:44.162 INFO [stderr] error: aborting due to previous error
Dec 01 21:36:44.162 INFO [stderr] 
Dec 01 21:36:44.171 INFO [stderr] error: Could not compile `chip8`.
Dec 01 21:36:44.171 INFO [stderr] 
Dec 01 21:36:44.171 INFO [stderr] To learn more, run the command again with --verbose.
Dec 01 21:36:44.174 INFO [stderr] su: No module specific data is present
Dec 01 21:36:44.464 INFO running `"docker" "inspect" "963d3370feff22d99518140a10a2fe211a1e3c7e0b8287aaa8166a57be1287b4"`
Dec 01 21:36:44.545 INFO running `"docker" "rm" "-f" "963d3370feff22d99518140a10a2fe211a1e3c7e0b8287aaa8166a57be1287b4"`
Dec 01 21:36:44.632 INFO [stdout] 963d3370feff22d99518140a10a2fe211a1e3c7e0b8287aaa8166a57be1287b4
